package com.buercorp.wangyu.socket;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;

/**
 * 接收数据
 * @author liyiyu
 */
public class Test03 {
    public static void main(String[] args) throws IOException {
        // 1.创建DatagramSocket对象
        /**
         * 细节：
         *      在接收的时候，一定要绑定数据
         *      绑定的数据一定要跟发送一样
         */
        DatagramSocket ds = new DatagramSocket(13333);

        // 2.接收数据包
        byte[] bytes = new byte[1024];
        DatagramPacket dp = new DatagramPacket(bytes,bytes.length);

        // 该方法阻塞
        ds.receive(dp);

        // 3.解析数据包
        byte[] data = dp.getData();
        int len = dp.getLength();
        InetAddress address = dp.getAddress();
        // ip
        String ip = dp.getAddress().getHostAddress();
        int port = dp.getPort(); // 获取端口

        System.out.println("接收到数据" + new String(data, 0,len));
        System.out.println("该数据是从" + address + "这台电脑中的" + port + "这个端口发出的");
        System.out.println("IP是: " + ip);
        // 4.释放资源
        ds.close();



    }
}
